<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Acceso extends CI_Controller {
	/*
	 * ------------------------------------
	 * CONSTRUCTOR DE LA CLASE
	 * ------------------------------------
	 * ENTRADA
	 *		empty
	 * SALIDA
	 *		empty 		
	*/
	function __construct(){
		parent::__construct();
		$this->load->model('usuario_model');
		$this->load->model('cliente_model');
		$this->load->library('session');
	}
	public function index(){}
	
	
	/*
	 * ---------------------------------------------------------------------
	 * FUNCION PARA EL INICIO DE SESION DE USUARIOS
	 * ---------------------------------------------------------------------
	 * ENTRADA
	 * 		POST_REQUEST
	 * 			usuario: 	Nombre de usuario que pretende iniciar sesion
	 * 			password: 	Clave de acceso del usuario
	 * SALIDA
	 * 		$tirajson: Contiene informacion del exito o no del inicio de
	 * 				   sesion e indica la url a la que se debe redireccionar  
	*/
	public function iniciarSesion(){
		$datos_acceso = array (
			'usuario'	=>$this->input->post('usuario'),
			'password'	=>$this->input->post('password')
		);
		
		$tirajson='';
		$resultado = $this->usuario_model->validarUsuario($datos_acceso);
		if ($resultado->num_rows() > 0 ){
			$usuario = $resultado->row();
			$datos_sesion = array(
				'idUsuario' 		=>$usuario->id_usuario,
				'nombreUsuario'		=>$datos_acceso['usuario'],
				'idRol'				=>$usuario->id_rol,
				'nombre_rol'		=>$usuario->nombre_rol,
				'nivelAcceso'		=>$usuario->nivel_acceso,
				'nombre'			=>$usuario->nombre,
				'apellido'			=>$usuario->apellido
			);
			$this->session->set_userdata($datos_sesion);
			$this->usuario_model->actualizarFechaUltVisita($datos_acceso['usuario']);
			$tirajson= '{ "success": "true", "exito": "true", "message": "Bienvenido ' . $this->session->userdata('nombre') . ' ' . $this->session->userdata('apellido') . '" }';
		}
		else{
			$tirajson= '{ "success": "true", "exito": "false", "message": "¡Usuario o Password invalido!" }';
		}
		echo $tirajson;
	}
	
	
	/*
	 * ---------------------------------------------------------------------
	 * FUNCION PARA DESTRUIR UNA SESSION ACTIVA
	 * ---------------------------------------------------------------------
	 * ENTRADA
	 * 		(empty)
	 * SALIDA
	 * 		(empty)		   
	*/
	public function cerrarSesion(){
		$this->session->sess_destroy();
	}
	
	
	/*
	 * ---------------------------------------------------------------------
	 * FUNCION PARA VERIFICAR SI EXISTE UNA SESSION ACTIVA
	 * ---------------------------------------------------------------------
	 * ENTRADA
	 * 		(empty)
	 * SALIDA
	 * 		$tirajson:		   
	*/
	public function existeSesion(){
		$tirajson='';
		if ($this->session->userdata('nombreUsuario') != null)
			$tirajson= '{ "success": "true", "exito": "true", "message": "Hay sesion activa" }';
		else
			$tirajson= '{ "success": "true", "exito": "false", "message": "No hay sesion activa" }';
		
		echo $tirajson;
	}
	
	
	/*
	 * ---------------------------------------------------------------------
	 * FUNCION QUE SIRVE PARA RETORNAR DATOS BASICOS DE LA SESION PARA
	 * CONSTRUIR EL MENU DE OPCIONES DE ACUERDO AL NIVEL DE ACCESO
	 * ---------------------------------------------------------------------
	 * ENTRADA
	 * 		(empty)
	 * SALIDA
	 * 		$tirajson:		   
	*/
	function datosSesionParaMenu(){
		$tirajson= '{ "success": "true", "nombre": "' . $this->session->userdata('nombre') . '",
					  "apellido": "' . $this->session->userdata('apellido') . '",
					  "nivel": "' . $this->session->userdata('nivelAcceso') . '" }';
		echo $tirajson;
	}
	
	
	/*
	 * ----------------------------------------------------------
	 * FUNCION PARA OBTENER EL NIVEL DE ACCESO
	 * ----------------------------------------------------------
	 * ENTRADA
	 * 		(empty)
	 * SALIDA
	 * 		int, nivel de acceso		   
	*/
	function verificarNivelAcceso(){
		
	}
}

?>